const removeCookie = (app, key) => {
  // 没有指定的情况下，会删除当前完整域名下的 对应cookie，比如对应的 a.ydl.com
  app.$cookiz.remove(key);
  // 需要指定 path 和 domain 否则无法删除
  app.$cookiz.remove(key, {
    domain: '.ydl.com',
    path: '/',
  });
};

// 登录时，登录的cookie是设置在 .ydl.com 上的，那么前端设置登录相关的信息也要保持一致
const enSetCookie = (app, key, val) => {
  app.$cookiz.set(key, val, {
    domain: '.ydl.com',
    path: '/',
  });
};

export default function ({ app, query }) {
  const { uid, accessToken, isFromApp, ffrom, barHeight, v, isFromMin, needSetToken } = query;
  uid && enSetCookie(app, 'uid', uid);
  accessToken && enSetCookie(app, 'accessToken', accessToken);
  ffrom && app.$cookiz.set('ffrom', ffrom);
  barHeight && app.$cookiz.set('barHeight', barHeight);
  v && app.$cookiz.set('v', v);
  if (isFromApp) {
    app.$cookiz.set('isFromApp', isFromApp);
    // isFromApp会被认为是app环境，为了保持登录与否的状态同步，uid 和 accessToken 为空时清空掉对应的cookie信息
    !uid && removeCookie(app, 'uid');
    !accessToken && removeCookie(app, 'accessToken');
    !ffrom && removeCookie(app, 'ffrom');
    !barHeight && removeCookie(app, 'barHeight');
  }
  // 小程序环境
  if (isFromMin === 'weapp') {
    // 小程序环境，为了保持登录与否的状态同步，uid 和 accessToken 为空时清空掉对应的cookie信息
    // 利用的原理跟app一样，小程序嵌入的web页面地址都会拼接 uid 和 accessToken 参数，可据此判断是否登录
    !uid && removeCookie(app, 'uid');
    !accessToken && removeCookie(app, 'accessToken');
  }
}
